home *** CD-ROM | disk | FTP | other *** search
/ Day Cry / Day Cry CD.bin / oh_towns / taropyon / he386 / ccisrc / tg300ds.c < prev    next >
Text File  |  1994-09-20  |  2KB  |  93 lines

  1. /*************************************************************************
  2. *    TG300 DRUM SETUP
  3. *************************************************************************/
  4.  
  5. int        Tg300drumBlockOfs[16] = 
  6. {
  7.     0x10000,0x20000,0x30000,0x40000,0x50000,0x60000,0x70000,0x80000,
  8.     0x90000,0x00000,0xA0000,0xB0000,0xC0000,0xD0000,0xE0000,0xF0000
  9. };
  10.  
  11. /*************************************************************************
  12. *    DRUM SETUP PARAMETER
  13. *-------------------------------------------------------------------------
  14. *    exTG300_drumSetup(part,note,pitch,fine,leve,pan,rev,cho,var,
  15. *                    freq,reso,grp,kasn,rxnn,rxoff,atak,dc1,dc2)
  16. *
  17. *        part    üc    1 ü` 16
  18. *        note    üc    27 ü` 88
  19. *
  20. *        pitch    üc    0 ü` 127
  21. *        fine    üc    -64 ü` 63
  22. *        level    üc    0ü`127
  23. *        pan        üc    rnd,-63ü`63
  24. *        rev        üc    0ü`127
  25. *        cho        üc    0ü`127
  26. *        var        üc    0ü`127
  27. *        freq    üc    0ü`127
  28. *        reso    üc    0ü`127
  29. *        grp        üc    0ü`127
  30. *        kasn    üc    0,1
  31. *        rxOn    üc    0,1
  32. *        rxOff    üc    0,1
  33. *        atak    üc    0ü`127
  34. *        dc1        üc    0ü`127
  35. *        dc2        üc    0ü`127
  36. *************************************************************************/
  37.  
  38. int        exTG300_drumSetup( char *sqr, size_t bufSiz, char *buf, int argc, char **argv )
  39. {
  40.     char    dat[20];
  41.     int        part, note;
  42.     int        pitch, fine, level, grp, pan, rev, cho, kasn;
  43.     int        rxOff, rxOn, freq, reso, atak, dc1, dc2, var;
  44.  
  45.     if ( argc != 18 )
  46.     {
  47. _ERR:    MM_setErrMsg(sqr,"TG300 \"DRUM SETUP PARAMETER\" error!");
  48.         return(ERR);
  49.     }
  50.     if ( (part = tg300_getPart(argv[0])) < 0 )
  51.         goto _ERR;
  52.     note = atoi(argv[1]);
  53.     if ( note < 0x1B || note > 0x58 )
  54.         goto _ERR;
  55.     pitch  = atoi(argv[ 2]);
  56.     fine   = atoi(argv[ 3]) + 0x40;
  57.     level  = atoi(argv[ 4]);
  58.     if ( strcmpi( argv[ 5],"rnd") == 0 )
  59.         pan  = 0;
  60.     else
  61.         pan = atoi(argv[ 5]) + 0x40;
  62.     rev    = atoi(argv[ 6]);
  63.     cho    = atoi(argv[ 7]);
  64.     var    = atoi(argv[ 8]);
  65.     freq   = atoi(argv[ 9]);
  66.     reso   = atoi(argv[10]);
  67.     grp    = atoi(argv[11]);
  68.     kasn   = atoi(argv[12]);
  69.     rxOn   = atoi(argv[13]);
  70.     rxOff  = atoi(argv[14]);
  71.     atak   = atoi(argv[15]);
  72.     dc1    = atoi(argv[16]);
  73.     dc2    = atoi(argv[17]);
  74.  
  75.     dat[ 0] = pitch;
  76.     dat[ 1] = fine;
  77.     dat[ 2] = level;
  78.     dat[ 3] = grp;
  79.     dat[ 4] = pan;
  80.     dat[ 5] = rev;
  81.     dat[ 6] = cho;
  82.     dat[ 7] = kasn;
  83.     dat[ 8] = rxOff;
  84.     dat[ 9] = rxOn;
  85.     dat[10] = freq;
  86.     dat[11] = reso;
  87.     dat[12] = atak;
  88.     dat[13] = dc2;
  89.     dat[14] = dc1;
  90.     dat[15] = var;
  91.     return tg300_genMML( sqr, bufSiz, buf, 0x100000+Tg300drumBlockOfs[part]+(note<<8), 16, dat );
  92. }
  93.